// 学习参考 https://www.bilibili.com/video/BV1Xy4y1v7S2?p=4&spm_id_from=333.880.my_history.page.click
// ts 基础类型
// 单个类型声明
let a : number
a = 10
console.log(a)
// 联合类型声明,表示一个变量可以是多个类型
let b : boolean | string | number
b = false
console.log(b)
b = "hello"
console.log(b)
b = 1
console.log(b)
// 任意类型,如果声明类型不指名类型,默认也就是 any 类型
let c : any
c = 10
c = "hello"
// 这里也就是完全和js一样的用法

let kk = ['1','3','5',6] // 这里直接使用赋值的方式,让ts猜测类型
console.log(kk)
// kk = 9 // 这里也就不能赋值其他的类型了

// 未知类型也可以作为 any 类型使用
let e : unknown
e = 5
console.log(e)

// 类型判断
if (typeof e == "string") {
    console.log("e是字符串")
} else {
    console.log('e不是字符串')
}

// 类型断言
console.log(e as string)
let eSay = e as number // 类型断言会返回 变量的真实类型,这里可以作为判断方法使用
console.log(eSay)

